OVLÁDÁNÍ PCF8574 POČÍTAČEM
Vágner Vlastimil
Návrh převodníku vznikl z potřeby
ovládání integrovaných obvodů na sběrnici I2C, důvodem jejich použití je jednodušší
programové ovládání. Pro odzkoušení převodníku při komunikaci a psaní programů
byl zvolen obvod PCF8574 pro svoji jednoduchou obsluhu. Převodník ani programy pro
jeho odzkoušení si nekladou za cíl konkurovat továrním výrobkům, mohou sloužit
pro vlastní inspiraci při tvorbě vlastních zařízení. Převodník se připojuje k počítači
pomocí sériového portu počítače nebo pomocí redukce USB/COM.
STRUČNÝ POPIS PCF8574
Uvedený integrovaný obvod je určený pro
sběrnici I2C jde o obvod který má osm linek rozhraní. Tyto mohou být použity
jako výstupní tak i jako vstupní, má vyvedeny i tři adresní linky, které je
možné použít pro adresování až osmi stejných integrovaných obvodů. Pevně přednastavená bázová adresa obvodu je
32, v zapojeních je možné využít i výstupní linku přerušení (INT)
s otevřeným kolektorem (DRAIN) který hlásí všechny změny na vstupních
linkách přechodem na nízkou (LOW) úroveň. Tento vývod v průběhu čtení pak
opět přechází do původního stavu (HIGH). I/O linky mají po zapnutí napájecího
napětí a v klidovém stavu vysokou úroveň (HIGH) a vysoký odpor což
znamená, že mohou být jinými vnějšími elektronickými obvody staženy na nízkou úroveň
(LOW), maximální odběr na jednotlivé lince je v tomto případě 300µA. Každá
z IO linek může být ovládána interním nízkoohmovým kolektorovým výstupem
tak že může být interně stažena na nízkou úroveň. Celý osmibitový port je tedy
možno částečně používat pro vstup dat tak částečně pro výstup dat, pouze čtecí linky musí být nastaveny na
vysokou úroveň protože jinak by nebylo možné jejich stav číst. Na
obrázku č, 02 je nákres uvedeného IO, bližší a podrobnější popis včetně algoritmu
programování je v datashhetu k uvedenému IO. Napájecí napětí obvodu je
v rozmezí 2.5V – 6V DC, IO linky obvodu snesou proud do 0.02A proti
kladnému napájecímu napětí.
POPIS PŘEVODNÍKU PRO NAPÁJENÍ
PCF8574 5VDC
Převodník je určen pouze pro napěťový převod
signálů z PC na úroveň napětí vstupů obvodů komunikujících po sběrnici I2C,
na obrázku č. 01 je zapojení toho nejjednoduššího převodníku zapojení je
uvedeno na mnoha stránkách a v mnoha modifikacích na internetu. Tento
převodník bez problémů funguje na počítačích, které mají na výstupních linkách
DTR, RTS, sériového portu při zapnutí uvedených výstupů na log. 1 a připojeném
převodníku k sériovému portu bez osazeného IO PCF8574 v patici
napětí 4.7 – 5V. Toto napětí změříme přímo na katodách ZENEROVÝCH DIOD hlavně se
jedná o vývod DTR kde je současně připojen i vstup CTS na lince I2C jde o linku
SDA, na tomto výstupu PC je vždy nižší hodnota napětí tím, že je současně
připojen i vstup CTS a nesmí být nižší jak 4.5V
PŘI NAPÁJENÍ PCF8574 NAPĚTÍM 5V DC i když při tomto napájecím napětí by
mohla být logická hodnota „H“minimálně 3.5V DC. Na počítačích (noteboocích) které mají na výstupních linkách sériového
portu a při stejném způsobu měření při připojeném převodníku hodnotu napětí
výstupu DTR nižší jak 4.5V tento převodník NEFUNGUJE
odzkoušeno při pokusech. Pro možné používání uvedeného jednoduchého
převodníku i na počítačích co mají uvedenou napěťovou úroveň výstupu DTR při
připojeném převodníku z obrázku č. 01 nižší jak 4.5V nebo je použit
převodník USB/COM je na obrázku č. 03 upravené zapojení kde je doplněn
tranzistor BC237 který odděluje vstup CTS od výstupu DTR. Tím je napětí výstupu
DTR rozdílné s napětím výstupu RTS podle parametrů použitých ZENEROVÝCH DIOD
protože výstup DTR není již přímo zatěžován vstupem CTS, hodnota napětí i při
použití USB/COM je v rozmezí napětí s převodníkem v tomto
případě 4.8V. Další možnost je napájet PCF8574 nižším napětím. Pokud navazující
elektronické obvody jsou schopné při tomto napětí pracovat.
POPIS PROGRAMŮ
Programy jsou
odladěny v Turbo Pascalu a jsou určeny pro OS DOS na počítačích s OS
Windows 95/98 jdou spustit buď po volbě DOS při startu počítače volba F8. Na
počítačích s OS Windows 2000, NT, XP a Windows7-startér jdou spustit pouze
z příkazové řádky POKUD JSOU UVEDENÉ OS NAINSTALOVÁNY VE 32-BITOVÉ
VERZI. Soubory jsou uloženy v adresáři PROGRAMY a mají názvy VÝSTUP.EXE,
PCF8574.EXE, TESTIC.EXE. Programy mají shodné ovládání : volba portu kde je
připojený převodník ten se volí stiskem klávesy <1>, <2>.
<3>, <4> stiskem klávesy 1 volíme port com1, stiskem klávesy 2
volíme port com2, atd. po volbě portu se již zobrazuje nabídka dle vybraného a
spuštěného programu.
Program
VÝSTUP.EXE : umožňuje zapnout a vypnout výstupy DTR, RTS a TXD tím je možné
změřit výstupní hodnotu napětí patřičného výstupu proti GND (-). Po volbě portu
stiskem kláves „Z“ a „V“ již zapínáme a vypínáme výstupy sériového portu program
ukončíme stiskem klávesy „ESC“.
Program
PCF8574.EXE : po volbě portu se na monitoru počítače zobrazí další nabídka
zda budeme do IO zapisovat nebo z IO číst hodnoty vstupů. Volbu „zápisu“
volíme stiskem klávesy „Z“ po stisku klávesy se zobrazí zadej hodnotu od 0 –
255, po zadaní hodnoty a stisku klávesy ENTER je zadaná hodnota vyslána na výstupní
linky IO PCF8574 a zároveň je také zobrazena na monitoru počítače. Další
hodnotu můžeme zadat po stisku klávesy MEZERNÍK, program ukončíme stiskem
klávesy ESC.
Volbu „čtení“
volíme stiskem klávesy „C“ po jejím stisku se na monitoru počítače zobrazuje
stav linek PCF8574, před načítáním linek jsou všechny linky automaticky
programem nastaveny na HIGH (hodnotou
255) a pokud nyní některou linku stáhneme na LOW (připojíme na mínus napájecího
napětí) je zobrazena hodnota této linky. To znamená že pokud je na mínus
připojena linka č.1 je na monitoru zobrazena hodnota „1“ jde o bit „0“ (proč
„0“ 2 ^ 0 = 1). V případě že na mínus napájecího napětí připojíme linku
č.2 je zobrazena hodnota „2“ jde o bit
„1“ (proč „1“ 2 ^ 1 = 2). Pokud nyní připojíme obě linky tj. linku č. 1 a linku
č.2 na mínus napájecího napětí zobrazí se hodnota „3“, jde o součet aktivních
vstupů tj. vstupu č.1 a č.2. program ukončíme stiskem klávesy ESC. Program je
možné použít k ovládání podle obr.č.04, obr.č.05, obr.č.06
V případě že IO PCF8574 nekomunikuje
s PC tak po volbě portu a volbě zápisu do IO zadání hodnoty a jejím
odeslání na IO se na monitoru PC zobrazí nápis „IO nekomunikuje „ a dále
pokračuj stiskem libovolné klávesy. Po stisku doporučeno stisknout klávesu
„MEZERNÍK“ se program ukončí, tento nápis v případě chyby komunikace se
zobrazí i po volbě „čtení“. Tato hláška poruchy komunikace s IO PCF8574 se
zobrazí i v dalších programech „TESTIC.EXE, ULN.EXE“.
Program
TESTIC.EXE : po volbě portu se na monitoru počítače zobrazí bez další volby
přímo zadej hodnotu od „0 – 255“ po zadaní hodnoty a stisku klávesy ENTER je
zadaná hodnota přenesena do PCF8574 a linky IO jsou podle zadané hodnoty
nastaveny na HIGH a LOW. Novou hodnotu můžeme zadat po stisku klávesy MEZERNÍK.
Program ukončíme stiskem klávesy ESC, tento program je určen pro odzkoušení
komunikace po výrobě převodníku. Může být použit pro ovládání k obr.č.04,
obr.č.06.
Pokud chceme z obvodu ULNXXXXA načítat
hodnoty musí být zapojený tento obvod tak že jeho vstupy jsou připojeny na
elektroniku která spíná báze tranzistorů v uvedeném IO a výstupy jsou
připojeny na linky PCF8574. Obr.č.05
Pokud chceme s PCF8574 ovládat nějaké
zařízení a současně načítat hodnoty musí být vždy linky které chceme načítat
nastaveny na vysokou úroveň, to znamená že na uvedený IO musíme zaslat po
adresování obvodu hodnotu jednoho bajtu a to hodnotu součtu uvedených linek
které chceme číst. Pokud nyní chceme např. číst hodnotu linek 1, 2, 3, 4 zadáme
hodnotu součtu těchto linek tj. hodnoty 1+2+4+8 = 15, linka 1 odpovídá bitu
„0“, linka 2 odpovídá bitu „1“, linka 3 odpovídá bitu 2, linka 4 odpovídá bitu
„3“. Tento součet zadáme jako hodnotu a na uvedených linkách zůstane vysoká
úroveň ostatní linky přejdou na nízkou úroveň.
Zkušební
zapojení převodníku dle Obr.č.01
Zkušební
zapojení převodníku dle Obr.č.02
Zkušební
zapojení převodníku s IO PCF8574
Připojení
zkušebního převodníku s IO PCF8574 k PC se sériovým portem
Spuštěný program
při zkouškách OS WindowsXP příkazová řádka
Měření
napětí na výstupu IOPCF8574 po zadání hodnoty
Připojení
vstupů IO PCF8574 na GND (-) zdroje
Načítání
vstupů z IO PCF8574 na PC OS Windows XP příkazová řádka
Připojení
převodníku dle Obr.č.02 k redukci USB/COM při zkoušení
Připojení
vstupů IO PCF8574 na GND(-) zdroje
načtená
hodnota vstupů počítačem OS Windows7 – startér příkazová řádka
spuštěný
program na počítači s OS Windows7 – startér z příkazové řádky
Programy
jsou psány k použitému převodníku, k jinému typu zapojení převodníku
je nutné mít program napsaný tak aby odpovídal signálům na lince I2C. Schémata
uvedená v článku jsou odzkoušena pouze s tímto typem IO a uvedenými
programy, jejich použití je možné i v jiných zapojeních po ozkoušení
s těmito zařízeními, zde jde o zapojení na odzkoušení komunikace počítače
s PCF8574.
Bližší
informace
použité
prameny : Martin Kvoch programování v TP
DATASHEET
k IO PCF8574
Radio Plus KTE 2000 /5,6